<?php
if(!$cms)
  include("_cms/classes/cms.inc");
include ($cms->contentpath."email_verify.php");

// Prevent unwanted output from the CMS, put a space in it's binary buffer
$cms->binary_buffer = " ";

function fout($error) {
global $cms;
  $melding = "Helaas is er een fout opgetreden.  ";
  $tmp_arr = array("Message" => $melding . $error);
  http_response_code(500);
  header('Content-Type: application/json');
  $cms->binary_buffer = json_encode($tmp_arr);
  echo $cms->binary_buffer;
  exit();
}

//
//check invoer
//

//eerst maar lengte en type regelen
$ins["voornaam"] = trim(substr($_REQUEST['voornaam'], 0, 20));
$ins["achternaam"] = trim(substr($_REQUEST['achternaam'], 0, 30));
$ins["geslacht"] = trim(substr($_REQUEST['geslacht'], 0, 1));
$ins["straat"] = trim(substr($_REQUEST['straat'], 0, 50));
$ins["huisnr"] = trim(substr($_REQUEST['huisnr'], 0, 10));
$ins["woonplaats"] = trim(substr($_REQUEST['woonplaats'], 0, 50));
$ins["land"] = trim(substr($_REQUEST['land'], 0, 30));
$ins["telefoon"] = trim(substr($_REQUEST['telefoon'], 0, 10));
$ins["email"] = trim(substr($_REQUEST['email'], 0, 50));
$ins["vereniging"] = intval($_REQUEST['vereniging']);
$ins["vereniging_alt"] = trim(substr($_REQUEST['vereniging_alt'], 0, 30));
$ins["inlever"] = intval($_REQUEST['inlever']);
$ins["keuringformulier"] = intval($_REQUEST['keuring']);
$ins["nieuwsflits"] = intval($_REQUEST['nieuwsflits']);
$ins["contact_me"] = intval($_REQUEST['contact_me']);
$ins["ipadres"] = $_SERVER['REMOTE_ADDR'];

if (strlen($ins['voornaam']) == 0) fout("Voornaam ontbreekt.");
if (strlen($ins['achternaam']) == 0) fout("Achternaam ontbreekt.");
if (strlen($ins['straat']) == 0) fout("Straat ontbreekt.");
if (strlen($ins['woonplaats']) == 0) fout("Woonplaats ontbreekt.");
if (strlen($ins['telefoon']) == 0) fout("Telefoon ontbreekt.");

// hebben we bieren en zo ja, filter evt 0 er uit.
$tmp = $_REQUEST['bier'];
$tmp_vrij = $_REQUEST['vrij'];

for($i=0; $i < count($tmp); $i++) {
  if ($tmp[$i] != 0) {
    $bieren[] = $tmp[$i]; 
    $vrij[] = $tmp_vrij[$i];
  }
}
if(count($bieren) == 0) fout("Geen bieren gekozen");

// check verplicht en niet al bestaand email
if(!validateEmail($_POST['email'], true)){
  fout("Dit is geen geldig emailadres: ".$_POST['email']);
  // $sql = "SELECT email FROM inschrijving where email=\"" . mysql_real_escape_string($_POST['email']) . '"';
  // $result = $cms -> db -> query($sql);
  // if ($result -> num_rows > 0){
  // fout("Dit emailadres is al gebruikt voor een inschrijving. Voor het aanpassen van een inschrijving neemt u contact op met ##contact##");
  // }
}
// en sla op
$result = $cms->db->update_tuple_array($ins, "inschrijving", "Inschrijving");
$ins_id = $result->last_id;
$ins['id'] = $ins_id;

//sla biernummers op in DB
for($i=0; $i < count($bieren); $i++) {
  $tmp['inschrijving'] = $ins_id;
  $tmp['biertype'] = $bieren[$i]; 
  $tmp['omschrijving_V'] = $vrij[$i];

  $result = $cms->db->update_tuple_array($tmp, "inschrijving_bier", "inschrijving_bier");
  $ins_id_bier = $result->last_id;
  // en bepaal volgnummer per type
  $query = " update inschrijving_bier as t1 inner join (select max(nummer)+1 as top from inschrijving_bier where biertype=$tmp[biertype]) as t2 set t1.nummer=t2.top where t1.id=$ins_id_bier;";
  $result = $cms->db->query($query);      // Geeft een db_result object terug
}


if(method_exists($cms->db,'get_system_var'))
  $price = $cms->db->get_system_var('##bedrag##');
if(!$price)
  $price = 4;
// bepaal totaal bedrag (nodig voor email) en sla ook op bij inschrijving
$bedrag = (count($bieren)*$price+$ins['keuringformulier']);
$ins['bedrag'] = $bedrag;
$result = $cms->db->update_tuple_array($ins, "inschrijving", "inschrijving");

// Maak de PDF
include ($cms->contentpath."make_pdf.php");
$result = make_pdf($ins_id);
$bieren = $result['bieren'];
$pdf_path = $result['pdf_path'];

//
// stuur email
//

$message = "
Geachte ".(($ins['geslacht']=='m')?'heer':'mevrouw')." $ins[achternaam],

Hierbij ontvangt u uw etiketten/labels voor het ONK ##jaar##. Deze ontvangt u in pdf formaat. Waarschijnlijk kunt u het bestand in de bijlage zonder problemen openen en afdrukken. Is dat niet het geval dan moet u eerst een geschikt programma downloaden en installeren waarmee het bestand wel geopend en geprint kan worden. Adobe reader is een algemeen toegepast programma wat u kunt downloaden van http://www.adobe.com.

Uw deelname bestaat uit het volgende, per bier ##bedrag## euro:\n\n";

for($i=0; $i < count($bieren); $i++) {
  $message .= "Bier nummer ". $bieren[$i]['label']."_".sprintf("%02d",$bieren[$i]['nummer'])." in Klasse ". $bieren[$i]['klasse']." - ".utf8_decode($bieren[$i]['naam']) ."\n" ;
}

if ($ins['keuringformulier']) {
  $message .= "\nU heeft aangegeven de keuringsformulieren thuis gestuurd te willen krijgen, a 1 euro.\n\n";
}

$message .= "\nHet totaal komt hiermee op $bedrag euro. Wilt u dit bedrag zo spoedig mogelijk overmaken naar rekening ##rekening## ten name van ##rekeningnaam## onder vermelding van \"ONK ##jaar##, deelnemer $ins_id\".

Wij wensen u veel succes met de wedstrijd en graag tot ziens op ##datum##.

Met vriendelijke groeten,

Wedstrijdorganisatie ##vereniging##";

require_once($cms->cmspath."toolbox/mail/phpmailer/class.phpmailer.php");

if(method_exists($cms,'replace_macros'))
  $message = $cms->replace_macros($message);

unset($mail);
$mail = new phpmailer();
$mail->CharSet  = 'iso-8859-1';
$mail->Encoding = 'quoted-printable';
$mail->AddAddress($ins['email'], $ins['voornaam'].' '.$ins['achternaam']);
$mail->Subject  = "Bevestiging inschrijving ONK";
if(method_exists($cms->db,'get_system_var')) {
  $from = $cms->db->get_system_var('##email##');
  $fromName = $cms->db->get_system_var('##emailname##');
}
else {
  $from='onk@tworwat.nl';
  $fromName = 'ONK wedstrijdorganisatie';
}
$mail->From=$from;
$mail->FromName=$fromName;
$mail->Body=$message;
$mail->AddAttachment($pdf_path, "ONK etiket.pdf"); // attachment
if(!$mail->Send()) {
  $cms->binary_buffer = "Mailer Error: " . $mail->ErrorInfo;
} 
else{
  $ins['verstuurd']=date("Y-m-d H:i:s");
  $result = $cms->db->update_tuple_array($ins, "inschrijving"," inschrijving");
}


if(method_exists($cms->db,'get_system_var'))
  $newsflash_email = $cms->db->get_system_var('##newsflash_email##');
if($newsflash_email && $ins["nieuwsflits"]) {
  $message = "
    Bij het inschrijven van bieren, heeft deelnemer $ins_id aangegeven de nieuwsflits te willen ontvangen.
        Naam: $ins[voornaam] $ins[achternaam]
      E-mail: $ins[email]
";
  unset($mail);
  $mail = new phpmailer();
  $mail->CharSet  = 'iso-8859-1';
  $mail->Encoding = 'quoted-printable';
  $mail->AddAddress($newsflash_email);
  $mail->From=$from;
  $mail->FromName=$fromName;
  $mail->Subject  = "Aanmelding nieuwsflits via inschrijfformulier";
  $mail->Body=$message;
  if(!$mail->Send()) {
    $cms->binary_buffer = "Mailer Error: " . $mail->ErrorInfo;
  }
}


// en twitter dat er weer een inzending is

/**
* post_tweet.php
* Example of posting a tweet with OAuth
* Latest copy of this code: 
* http://140dev.com/twitter-api-programming-tutorials/hello-twitter-oauth-php/
* @author Adam Green <140dev@gmail.com>
* @license GNU Public License
*/

$tweet_text = 'Nieuwe inschrijving met een ';
$tweet_bieren = '';
for($i=0; $i < count($bieren); $i++) {
  if ($i && $i==count($bieren)-1)
    $tweet_bieren .= " en een ";
  else if($i)
    $tweet_bieren .= ", een ";
  //$tweet_bieren .=  "Klasse ".$bieren[$i]['klasse']." - ".$bieren[$i]['naam'];
  $tweet_bieren .=  $bieren[$i]['naam'];
}
$result = post_tweet($tweet_text.$tweet_bieren);
header('Content-Type: text/plain');
$cms->binary_buffer = base64_encode($tweet_bieren);
echo $cms->binary_buffer;

function post_tweet($tweet_text) {
  global $cms;
  // Use Matt Harris' OAuth library to make the connection
  // This lives at: https://github.com/themattharris/tmhOAuth
  require_once($cms->contentpath.'tmhoauth/tmhOAuth.php');
  // Set the authorization values
  // In keeping with the OAuth tradition of maximum confusion, 
  // the names of some of these values are different from the Twitter Dev interface
  // user_token is called Access Token on the Dev site
  // user_secret is called Access Token Secret on the Dev site
  // The values here have asterisks to hide the true contents 
  // You need to use the actual values from Twitter
  if(method_exists($cms->db,'get_system_var')) {
    $consumer_key    = $cms->db->get_system_var('##twitter_consumer_key##');
    $consumer_secret = $cms->db->get_system_var('##twitter_consumer_secret##');
    $user_token      = $cms->db->get_system_var('##twitter_user_token##');
    $user_secret     = $cms->db->get_system_var('##twitter_user_secret##');
  }
  if(!$consumer_key) {
    $consumer_key    = 'iyKuFCJwO5d6MA1xroEAeA';
    $consumer_secret = 'nKCHCxq3cOjtqQnfKsP3VmpxxTE0kftcJOqfHluRZw';
    $user_token      = '882927428-xAaJXuFwghc1R4kQtCcAk01EHlSXbQ0xersHeEcs';
    $user_secret     = 'OFN1HQxRa8fy8POWMmbUCFgogj6JX0VdmnJlQXkaq4';
  }
  $connection = new tmhOAuth(array(
    'consumer_key'    => $consumer_key,
    'consumer_secret' => $consumer_secret,
    'user_token'      => $user_token,
    'user_secret'     => $user_secret,
  )); 

  // Make the API call
  $connection->request('POST', 
    $connection->url('1.1/statuses/update'), 
    array('status' => $tweet_text) 
  );
  return $connection->response['code'];
}

?>
